//
//  TempPage.m
//  Tanker
//
//  Created by 贾  on 2017/3/27.
//  Copyright © 2017年 Tanker. All rights reserved.
//

#import "TempPage.h"
#import "BaseTemp.h"
#import "ChildTemp.h"
#import "LKDBHelper+Extension.h"
#import "LKDB+Mapping.h"
#import "NSObject+LKModel.h"

@interface TempPage ()

@end

@implementation TempPage

-(id) init{
    self = [super init];
    ChildTemp *childTemp = [[ChildTemp alloc] init];
    BaseTemp *baseTemp = [[BaseTemp alloc] init];
    
    if ([childTemp respondsToSelector:@selector(baseVar)]) {
        NSLog(@"");
    }else{
        NSLog(@"");
    }
    
    
    
    
    LKModelInfos* infos = [ChildTemp getModelInfos];
    LKModelInfos* baseInfos = [childTemp.superclass getModelInfos];
    NSMutableArray *proStrs = [childTemp getAllPropertysString];
    
    NSLog(@"");
    
//    NSMutableString* insertKey = [NSMutableString stringWithCapacity:0];
//    NSMutableString* insertValuesString = [NSMutableString stringWithCapacity:0];
//    NSMutableArray* insertValues = [NSMutableArray arrayWithCapacity:infos.count];
//    
//    LKDBProperty* primaryProperty = [model singlePrimaryKeyProperty];
//    
//    for (NSInteger i = 0; i < infos.count; i++) {
//        LKDBProperty* property = [infos objectWithIndex:i];
//        
//        if ([LKDBUtils checkStringIsEmpty:property.sqlColumnName]) {
//            continue;
//        }
//        
//        if ([property isEqual:primaryProperty]) {
//            if ([property.sqlColumnType isEqualToString:LKSQL_Type_Int] && [model singlePrimaryKeyValueIsEmpty]) {
//                continue;
//            }
//        }
//        
//        id value = [self modelValueWithProperty:property model:model];
//        
//        ///跳过 rowid = 0 的属性
//        if ([property.sqlColumnName isEqualToString:@"rowid"] && ([value intValue] == 0)) {
//            continue;
//        }
//        
//        
//        [insertKey appendString:property.sqlColumnName];
//        
//        [insertValues addObject:value];
//    }
//    
//    // 拼接insertSQL 语句  采用 replace 插入
//    NSString* insertSQL = [NSString stringWithFormat:@"replace into %@(%@) values(%@)", db_tableName, insertKey, insertValuesString];
//    
//    __block BOOL execute = NO;
//    __block sqlite_int64 lastInsertRowId = 0;
//    
//    [self executeDB:^(FMDatabase* db) {
//        execute = [db executeUpdate:insertSQL withArgumentsInArray:insertValues];
//        lastInsertRowId = db.lastInsertRowId;
//        
//        if (db.hadError) {
//            LKErrorLog(@" sql:%@ \n args:%@ \n sqlite error :%@ \n", insertSQL, insertValues, db.lastErrorMessage);
//        }
//    }];
//    
//    model.rowid = (NSInteger)lastInsertRowId;
//    
//    [model setDb_inserting:NO];
//    
//    // callback
//    [modelClass dbDidInserted:model result:execute];
//    
//    
//    
//    
//    
//    
//    
//    NSLog(@"________22222:%@",NSStringFromClass(ev.class));

    
    
    
    
    
    
    
    
    
    
    return self;
}




//    //MARK:Model2Dic
//    - (NSDictionary *)properties_aps
//    {
//        NSMutableDictionary *props = [NSMutableDictionary dictionary];
//        unsigned int outCount, i;
//        objc_property_t *properties = class_copyPropertyList([self class], &outCount);
//        for (i = 0; i<outCount; i++)
//        {
//            objc_property_t property = properties[i];
//            const char* char_f =property_getName(property);
//            NSString *propertyName = [NSString stringWithUTF8String:char_f];
//            id propertyValue = [self valueForKey:(NSString *)propertyName];
//            if (propertyValue) [props setObject:propertyValue forKey:propertyName];
//        }
//        free(properties);
//        return props;
//    }









//MARK:一对多表结构时的代码:

//3,查找数据(已知解析到苹果的类结构链)
//NSArray *appleClassArr = @[MKObject class],[MKFood class],[];
//    MKObject *findObj = [MKObject searchSingleWithWhere:[NSString stringWithFormat:@"name='%@'",@"桃"] orderBy:nil withDBHelper:db_MK];
//    if (findObj) {
//        if (findObj.type == MKObjectType_Real) {
//            NSString *where = [MKUtils sqlWhere_K:MKObjectId_ColumnName V:@(findObj.rowid)];
//            NSLog(@"%@",where);
//            MKRealObject *realObj = [MKRealObject searchSingleWithWhere:where orderBy:nil withDBHelper:db_MK];
//
//
//
//            if (realObj) {
//                NSString *where = [MKUtils sqlWhere_RowId:realObj.rowid];
//                NSLog(@"%@",where);
//                Class thisIsClass = NSClassFromString(realObj.thisIs);
//                NSLog(@"thisIs:%@",thisIsClass);
//                MKFood *food = [thisIsClass searchSingleWithWhere:where orderBy:nil withDBHelper:db_MK];
//                if (food) {
//                    NSLog(@"");
//                }
//            }
//        }else if (findObj.type == MKObjectType_Virtual) {
//
//        }else if (findObj.type == MKObjectType_Abstract) {
//
//        }
//    }
//





@end
